home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Games / lptalk-1.3 / log.c < prev    next >
C/C++ Source or Header  |  1995-05-03  |  2KB  |  91 lines

  1. /************************************************************************/
  2. /* LP-Talk
  3.     Version 1.0 [ 9/24/90]
  4.     Version 1.1 [ 9/27/90]
  5.     Version 1.2 [ 9/28/90]
  6. */
  7. /* TinyTalk logging.                            */
  8. /*                                    */
  9. /*    Version 1.0 [ 1/25/90] : Initial implementation by ABR.        */
  10. /*        1.1 [ 2/ 5/90] : Added explicit file flushing.        */
  11. /*                                    */
  12. /************************************************************************/
  13.  
  14. #include "tl.h"
  15. #include <stdio.h>
  16.  
  17. static FILE *log_file;
  18. static string log_file_name;
  19. static int log_on, log_me;
  20.  
  21. init_logging()
  22. {
  23.   strcpy(log_file_name, "~/lptalk.log");    /* In home directory. */
  24.   expand_filename(log_file_name);
  25.   log_on = 0;                /* Don't log output */
  26.   log_me = 0;                /* Don't log input either */
  27.   log_file = NULL;            /* No log file is open. */
  28. }
  29.  
  30. enable_logging(name)            /* Enable logging.  Null name means */
  31.   char *name;                /* use current default. */
  32. {
  33.   if (*name != '\0') {
  34.     strcpy(log_file_name, name);
  35.     expand_filename(log_file_name);
  36.   }
  37.  
  38.   if (log_file != NULL)            /* Close current log file */
  39.     fclose(log_file);
  40.  
  41.   log_file = fopen(log_file_name, "a");    /* Append to log file */
  42.   log_on = TRUE;
  43.   if (log_file == NULL) {
  44.     fprintf(stderr,"%% Could not open log file %s.\n", log_file_name);
  45.     log_on = FALSE;
  46.   }
  47. }
  48.  
  49. disable_logging()
  50. {
  51.   log_on = FALSE;            /* Turn off logging */
  52.   if (log_file != NULL)    {        /* Close file if open */
  53.     fclose(log_file);
  54.     log_file = NULL;
  55.   }
  56. }
  57.  
  58. flush_logfile()                /* Flush log file to disk. */
  59. {
  60.   if (log_file != NULL)
  61.     fflush(log_file);
  62. }
  63.  
  64. enable_logme()
  65. {
  66.   log_me = TRUE;
  67. }
  68.  
  69. disable_logme()
  70. {
  71.   log_me = FALSE;
  72. }
  73.  
  74. log_output(s)                /* From server */
  75.   char *s;
  76. {
  77.   if (log_on && (log_file != NULL)) {
  78.     fputs(s, log_file);
  79.     fputc('\n', log_file);
  80.   }
  81. }
  82.  
  83. log_input(s)                /* From keyboard */
  84.   char *s;
  85. {
  86.   if (log_on && log_me && (log_file != NULL)) {
  87.     fputs(s, log_file);
  88.     fputc('\n', log_file);
  89.   }
  90. }
  91.